Segmentation-based method for motion-compensated frame interpolation

ABSTRACT

A method of motion compensated frame interpolation wherein an intermediate image frame is generated between two image frames in a motion image sequence. The method includes the steps of: identifying a moving foreground or object and the background for two successive frames in a motion image sequence; estimating a velocity vector field for the foreground, and a velocity vector field for the background; using the estimated velocity vector field for the foreground to identify the location of the foreground and the background in the intermediate image; and obtaining the intermediate image by using the foreground velocity vector field to perform motion compensated interpolation for the foreground in the intermediate image and using the background velocity vector field to perform motion compensated interpolation for the background in the intermediate image.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application claims the benefit of U.S. Provisional application Ser. No. 60/038,024, filed Feb. 14, 1997. The present application is related to U.S. application Ser. No. 07/823,723, filed Jan. 22, 1992, by Sergei Fogel, and entitled, "Method of Modifying a Time-Varying Image Sequence by Estimation of velocity Vector Fields".

FIELD OF THE INVENTION

The invention relates generally to the field of digital image processing, and in particular to motion compensation in digital motion image processing. More specifically, the invention relates to a method for motion compensation useful in video frame interpolation.

BACKGROUND OF THE INVENTION

Motion compensation is widely used in digital video processing algorithms to exploit temporal redundancy in an effort to produce high-quality results. An example of video processing is frame interpolation, used for standards conversion as well as for generation of slow and fast motion in motion picture film/video post-production. In frame interpolation, direct temporal interpolation, i.e. without using motion information, results either in blurring or temporal aliasing when there is relative motion between objects from frame-to-frame. Motion-compensated interpolation, on the other hand, is capable of producing results without blur and aliasing.

The success of motion-compensated interpolation hinges on the accuracy of the motion information. Because motion estimation is an underdetermined problem, it relies on a priori constraints and information about the motion vector field (e.g. smoothness), the image intensity, and models for the 3-D-to-2-D projection. When such constraints becomes invalid, motion estimation becomes inaccurate. When a background is occluded with an object moving across the background, fundamental constraints such as image intensity conservation (the optical flow constraint), used in motion estimation, becomes invalid. At the boundaries of the occluded regions, corresponding to object boundaries, smoothness of the motion field is invalid since motion of occluding objects may be significantly different. Occlusions manifest themselves as covered and uncovered regions, or self occlusions due to local deformation in non-rigid objects. Of particular interest for the subject invention are occlusions that are due to covered/uncovered regions, assuming that object deformations are sufficiently small. A depiction of such regions for a hypothetical 1-D case is given in FIGS. 1A and 1B.

FIG. 1A is a depiction of an occlusion in a 1-D image. As the rectangular object 10 in Frame 1 at time t_(P), moves against a stationary background 12 to a new location indicated by the location of the rectangular object 10' in Frame 2, at time t_(Q), FIG. 1B, it covers region 16 and uncovers region 14. The uncovered region 14 is absent at time t_(P) and the covered region 16 is absent at time t_(Q). The 1-D example is shown for simplicity with the understanding that 2-D and 3-D occlusions may also occur.

FIG. 2 illustrates an Intermediate Frame, occurring at time t, wherein the region 16 is partially covered and the region 14 is partially uncovered by the rectangular object 10". In other words, the object 10 moved from its position in Frame 1 to the position shown in the Intermediate Frame to its final position shown in Frame 2. Applying linear trajectories 20 between like points at times t_(P) and t_(Q). provides information about the image at time t. To be noted: If the time period between t_(P) and t_(Q) is great, any non-linear motion of the rectangular object 10 at time t will not be accurately detected resulting in an inaccurate Intermediate Frame determination. In a like manner, if the object 10 linearly moved to, for example, the far left and linearly back to the position shown in Frame 2, the Intermediate Frame would not represent that motion. Therefore, the time between t_(P) and t_(Q) must be relatively small for accurate results when using the present algorithm. Applying motion-compensated, bi-directional interpolation along the linear motion trajectories 20 results in occluded regions 18 in the intermediate frame, denoted by ellipses. Image intensities for the occluded regions are copied from the appropriate existing frame. That is, for the occluded region 18, the image intensities are copied from Frame 2, and for the occluded region 18' image intensities are copied from Frame 1. The trajectories 20 shown are ideal trajectories assuming exact motion estimation.

In summary then, using motion-compensated frame interpolation, a frame at an intermediate time instance, t, is interpolated from existing frames that are captured at times t_(P) and t_(Q), where t_(P) <t<t_(Q). The linear motion trajectories 20 (vectors) are estimated between the existing Frames 1 and 2 such that they describe linear trajectories passing through pixel locations at the missing Intermediate Frame. FIG. 2 assumes the ideal case where motion vectors are accurate and the occluded regions 18 are accurately detected and handled. For linear motion trajectories (vectors) corresponding to non-occluded regions a linear combination (e.g. a weighted average) of the two image values at times t_(P) and t_(Q) is used to estimate the missing pixel value through which the associated vector passes. In uncovered regions of the Intermediate Frame, background intensity values from the future frame, Frame 2, are taken as the estimates for the missing pixels. Conversely for covered regions the background intensity values for the past frame Frame 1 are taken as estimates for the missing pixel values. This is what is meant by "occlusion handling" in the context of frame interpolation.

The accuracy of motion estimation and detection of occlusion regions are important practical problems that have been addressed. See, for example, Philippe Robert, "motion compensating interpolation considering occluded, appearing and disappearing areas", Signal Processing of HDTV, III, H. Yasuda and Chiariglione (Eds.), pp. 329-341, Elsevier Publishers, Amsterdam, 1991; and M. Bierling and R. Thoma, "Motion-compensating interpolation considering covered and uncovered background", Signal Processing: Image Communication, pp. 191-212, 1989. In addition, inaccuracies in motion estimation are not limited to only occluded regions. In almost all motion estimation algorithms, the problems within the occluded region propagate to regions outside the occluded region, adversely affecting the estimates immediately outside the occluded region. This case is depicted in FIG. 3. The case of FIG. 3 should be viewed as a non-ideal version of the case shown in FIG. 2 and represents what happens in practice. The regions 22 and 22' containing the occluded regions 18 and 18', respectively, at the Intermediate Frame location of the rectangular object 10" over which motion estimates are inaccurate are designated "bad regions," respectively. In practice, motion estimates are inaccurate within "bad regions", containing the occluded regions 18 and 18' and the immediate neighborhood.

The origin of "bad regions" can be explained as follows: At occluded region boundaries, the motion vector field should not be smooth, however the optical flow constraint is valid. On the other hand, within the occluded region, the optical flow constraint is invalid, but the motion vector field is smooth. Therefore, a successful algorithm has to enforce/suppress these two constraints at the appropriate locations at and around the occluded regions. Most algorithms are incapable of doing so since they tend to enforce these constraints with a fixed relative strength for the entire image region. The Fogel algorithm (see S. Fogel, "The estimation of velocity vector fields from time-varying image sequences, Computer Vision Graphic and Image Processing: Image Understanding, vol. 53, pp. 253-287, 1991), on the other hand, deals with occlusions using an adaptive mechanism that attempts to detect occluded regions and to adjust the relative strengths of these two constraints. Detection of occluded regions is based on implicit detection of image intensity transitions (i.e. edges) and gradients of the motion vector field. Because detection of occluded regions is itself a difficult problem, the Fogel algorithm may be unable, for instance, to turn off the smoothness₋₋ constraint at the exact position of the occlusion boundary. In fact, in certain cases, detection of edges may be rather difficult for the eye of an observer. This causes the propagation of estimation errors into what has been called the "bad regions" of FIG. 3.

There is a need therefore for an object-based method to accurately determine occluded regions, to remove the bad regions, and to perform appropriate interpolation of the Intermediate Field at occluded regions.

SUMMARY OF THE INVENTION

The present invention is directed to overcoming one or more of the problems set forth above. This is achieved by identifying and processing occluding objects separately. The contours of occluding objects (occlusion boundaries) are manually determined via an interactive drawing tool that has a graphical user interface. This segmentation in effect amounts to manually providing the Fogel algorithm with the information about where to enforce/suppress optical flow and smoothness constraints. Briefly summarized, according to one aspect of the present invention, a method of motion compensated frame interpolation wherein an intermediate image frame is generated between two image frames in a motion image sequence, includes the steps of: identifying a foreground and a background for two successive frames in a motion image sequence; estimating a velocity vector field for the foreground, and a velocity vector field for the background; using the estimated velocity vector field for the foreground to identify the location of the foreground and the background in the intermediate image; and obtaining the intermediate image by using the foreground velocity vector field to perform motion compensated interpolation for the foreground in the intermediate image and using the background velocity vector field to perform motion compensated interpolation for the background in the intermediate image.

These and other aspects, objects, features and advantages of the present invention will be more clearly understood and appreciated from a review of the following detailed description of the preferred embodiments and appended claims, and by reference to the accompanying drawings.

ADVANTAGEOUS EFFECT OF THE INVENTION

The present invention is more robust in the presence of noise in the original image and renders a more accurate intermediate image than Prior Art methods.

BRIEF DESCRIPTION OF THE DRAWINGS

FIGS. 1A and 1B are diagrams useful in describing the present invention, showing two successive image frames having a moving object;

FIG. 2 is a diagram similar to that shown in FIGS. 1A and 1B, illustrating the generation of an Intermediate Frame at a time t and the resulting occluded regions;

FIG. 3 is a diagram similar to that shown in FIG. 2, illustrating the problem of estimation of velocity vectors in the occluded regions;

FIG. 4 is a block diagram illustrating an image processing system useful for practicing the present invention;

FIG. 5A and 5B form a flow chart that is useful in understanding the method of the present invention; and

FIGS. 6A and 6B illustrate in diagram form a truck image moving over a background image and the results of that motion is a 1D image plane.

To facilitate understanding, identical reference numerals have been used, where possible, to designate identical elements that are common to the figures.

DETAILED DESCRIPTION OF THE INVENTION

The method of the present invention is useful as a tool to solve the problems that arise in "difficult" motion clips where errors due to inaccurate detection and mishandling of occlusion are most objectionable (e.g. close ups of faces, etc.). In many other cases, such as detailed scenes viewed from a distance (e.g. an explosion scene) one may not need to resort to this method. It should also be noted that this approach is not intended to solve the problems due to severe self occlusions (e.g. due to local deformations) that may take place within objects rather than at their boundaries.

In what follows, the main principle of the method of the present invention is described. Next, a detailed mathematical description of the method and its implementation is described.

The main principle of the method will be described using the example where a foreground object partially occludes the background as discussed in the Background of the Invention. Referring now to FIG. 4, a digital image processing system 40 suitable for practicing the invention is shown. The system includes an image processing computer 26, such as a Silicon Graphics Indiga II or Sun Sparc Workstation a video display 24, keyboard 30, and an input device, such as a mouse 28, that is connected to the processing computer 26 to provide a graphical user interface for processing motion image sequences (frames of motion images). A digital image storage device 32, such as a magnetic hard drive or optical disc memory, stores the original motion image sequences and stores the processed motion image sequence(s).

Referring now to FIG. 5A, to process a motion image sequence according to the present invention, the first step 42 is to identify the foreground and the background objects in the First and Second image frames at times t_(P) and t_(Q) by interactively drawing the boundaries of the foreground object(s) using any well known graphic user interface that provides for outlining areas in an image. Next, in step 44 and 46 the computer 26 estimates the velocity vector fields for the foreground and the background, respectively, in the Intermediate Frame at time t. The computer 26, then in step 48, identifies, segments, and labels the foreground and background regions for the intermediate image of the Intermediate Frame in the following manner: For each pixel determination in the intermediate image, the computer 26 uses the velocity vector at the pixel's location to locate corresponding points in Frames 1 and 2, at times t_(P) and t_(Q). If the pixel's location in both frames is in the foreground, the pixel is identified as a foreground pixel and labeled a 2, per step 50, otherwise, the pixel is identified as a background pixel and is labeled as a 1, per step 52. With overlapping foreground pixels, the first overlapping pixels are labeled 3 with overlaps on overlaps the label number increases by 1 for each overlap. Referring now to FIG. 5B, in step 54 the computer 26 obtains the intermediate image for time t as follows: For each pixel in the intermediate image, if it is a foreground pixel, the computer uses the estimated foreground velocity vector at that pixel to find the correspondingly located pixel in the two frames, and computes the time weighted average of the two points. If the pixel is a background pixel, the computer finds the pixel's value in the two frames using the estimated background velocity vector and if they are both background pixel values, computes the time weighted average of the two points. If only one of the two corresponding pixel values is a background pixel value, the computer 26 uses that value as the background pixel value; and if they are both foreground the computer determines the value of the pixel from the pixel values of neighboring background pixels in the intermediate image. For purposes of illustration, the Intermediate image Frame in FIGS. 2 and 3 has been shown at a time t midway between Frame 1 and Frame 2. It should be noted that the method of the present invention may be employed to generate an intermediate image or a number of intermediate images at any time or times between any two captured frames.

Each pixel at the output of step 54 has one assigned estimated velocity vector field value. Those pixels are next processed in step 56 to interpolate the values of each pixels' neighbors using the label, the estimated velocity vector field value, and the pixels' image value.

The output of step 56 is a set of interpolated Intermediate Frame pixel values 58 that may be used in conjunction with an output device 60, such as a display device, or stored in a storage device, or transmitted to a remote location for viewing, modification, storing, or printing.

To simplify and in turn speed-up the computer's processing time, it is advantageous to only process the pixel's illuminance values and to set the R(red) and G(green) pixel values to some constant, for example, zero for all pixels outside of the encompassed objects of interest. In other words the image outside of objects having motion from one frame to another will appear blue, if the R and G pixel values are set to zero or to some other uniform color if they are all set to other values.

Referring now to FIG. 6A, the preferred embodiment of the method of the present invention will now be described in more detail. Using a graphical user interface, the user associates pixels of the existing frames with a "label" and a "flag." The (missing) pixels of the Intermediate Frame are associated with a "label" only. Labels are given integer values 1, 2, 3, . . . depending on the number of overlapping objects appearing in a frame. Flags represent either a "valid" or an "invalid" value, describing the validity of optical flow constraint as will be clear in the discussion that follows.

Referring to FIG. 6A, the truck, object 10, is encompassed (outlined) using any of the well known programs previously referenced to form the outline 70. The non-moving background to be occluded is the road portion labeled 16, as the truck 10 moves in the direction labeled D. Viewing FIG. 6A in conjunction with FIG. 6B, the occluding foreground (the truck) is assigned a label "2" and the background is assigned a label "1." The convention is such that the occluding object (in this case 10 and 10') is assigned a larger label than the occluded region. The user identifies the occluded regions on Frames 1 and 2 at times t_(P) and t_(Q), respectively. For example, the objects 10 and 10' are assigned the label "2" and the background 12 is assigned a label "1." Determination of the corresponding labels in the Intermediate Frame is discussed below.

This implementation is described generally as having the following steps:

Step 1. Create two frames from the original frames, at time t_(P) and t_(Q), by setting the image intensity to zero for regions labeled as "1." (Actual image intensity is maintained at pixels labeled as "2".) This effectively separates the foreground object from the background. The edges of the foreground object are now clearly defined for the Fogel application of the algorithm, without any interference from the background detail. The flags corresponding to the pixels of these two frames are then set to "valid" as previously states, with a color image, for example, an RGB image, the pixel values representing red and green may be set to zero and the blue pixel values can be set to a constant blue value. With that approach only the pixel values within the outlined object will be in R, G, B color and the background will be a substantially constant blue color.

Step 2. At this step, motion of the foreground object (truck) is estimated as described in detail below: estimate the linear motion trajectories between the frames created at the previous step, passing through a predetermined subset of pixel locations at t, using the Fogel algorithm of Appendix A. The resulting motion vector field is designated by υ₂ ^(t).

Step 3. Create two frames from the original frames, at times t_(P) and t_(Q), by setting the flags for pixels corresponding to label "2" to "invalid." Flags for the reset of the pixels are set to "valid."

Step 4. At this step, motion of the background object is estimated as described in detail below: estimate the linear motion trajectories between the two frames created at the previous step, passing through the same pixel grid at t, using the Fogel algorithm. During estimation, suppress the optical flow constraint completely unless the trajectory intercepts regions with flags set to "invalid". The resulting motion vector field is denoted by υ₁ ^(t). At the end of this step, at every pixel grid location at t, there are two trajectories/vectors υ₁ ^(t) and υ₂ ^(t).

Step 5. The estimated vector fields υ₁ ^(t) and υ₂ ^(t) both are interpolated to form dense vector fields where every pixel location, (i,j) at t has two associated vectors, υ₁ ^(t) (i,j) and υ₂ ^(t) (i,j).

Step 6. At this step, the intermediate frame at time t is labeled: for every pixel grid location at t, if the associated trajectory intercepts regions labeled as "2" in both existing frames, we label that pixel as "2". Otherwise it is labeled as "1." An ideal labeling of the intermediate frame is shown in FIG. 6B. According to this labeling, each pixel is associated with a motion vector (or trajectory); pixel at location (i,j) is associated with vector υ₁ ^(t) (i,j) if it is labeled as "1," otherwise υ₂ ⁵ (i,j) is the trajectory passing through (i,j). For every grid location, the appropriate vector is maintained.

Step 7. In this step, the covered and uncovered regions at the intermediate frame are detected and handled by appropriate interpolation. We denote the labels of co-located pixels at positions (i,j), at times t_(P), t and t_(Q), as L0(i,j)←L(i,j)→L1(i,j). We have the following rules for appropriate interpolation:

IF 2←2→2 THEN use bilinear interpolation of the corresponding image values at times t_(P) and t_(Q), on the trajectory υ₂ ^(t) (i,j) passing through (i,j), to fill in the pixel value at location (i,j) at time t. The weights in the bilinear interpolation depend on the relative time-distance between the intermediate and the existing frames. The trajectory may point to interpixel values at the existing frames. Image vectors at such locations are computed via spatial bilinear interpolation of neighboring pixel values.

IF 1←1→1 THEN use bilinear interpolation of the corresponding image values at times t_(P) and t_(Q), on the trajectory υ₁ ^(t) (i,j) passing through (i,j) to fill in the pixel value at location (i,j) at time t.

IF 2←1→1 THEN pixel location (i,j) is within an uncovered region at the intermediate frame. (This can be seen in FIG. 6). This region should therefore be a part of the background. The image intensity at (i,j) should be taken from the future frame at t_(Q), since this pixel is covered in the previous frame at time t_(P). The intensity at (i,j) at time t is obtained by copying the intensity of the location where υ₁ ^(t) (i,j) intercepts the frame at time t_(Q). Again, if the intercept is positioned at an inter-pixel location, the intensity value is obtained using spatial bilinear interpolation.

IF 1←1→2 THEN pixel location (i,j) is within a covered region at the intermediate frame. (This can be seen in FIG. 6). This region should therefore be a part of the background. However, the image intensity at (i,j) should be taken from the previous frame at t_(P), since this pixel is covered in the future frame at time t_(Q). The intensity at (i,j) at time t_(k) is obtained by copying the intensity of the location where υ₁ ^(t) (i,j) intercepts the frame at time t_(P).

In order to reduce computation in Step 2 above, vector field υ₂ ^(t) can be estimated only for those pixel grid positions that lie in the convex hull of regions labeled as "2" in frames at time t_(P) and t_(Q).

The above method can be extended to an arbitrary number of occluding objects. Suppose that there are three objects, where object "3" (labeled as "3") is partially occluding object "2," and object "2" is partially occluding the background object labeled as "1." In this case, three motion vector fields, υ₁ ^(t), υ₂ ^(t), υ₃ ^(t), are estimated at the intermediate frame. In estimating υ₁ ^(t), pixels with labels smaller than "3" are set to zero, and all flags are set to "valid". For υ₂ ^(t), pixels with labels smaller than "2" (i.e. "1") are set to zero, the flags for pixels with larger labels (i.e. "3") are set to "invalid."

The object based approach to detection and handling of occlusions in motion-compensated frame interpolation according to the present invention requires the user to input boundaries of occluding objects through a graphical interface. It is useful, for processing difficult cases, to create smooth slow and fast motion. The method is best used by applying it locally to difficult image areas only, rather than to the entire frames.

An even more detailed description of the embodiment outlined above, sufficient to enable a person of ordinary skill in the art to program a digital computer to practice the method of the present invention is contained in the following mathematical based description:

The invention has been described with reference to a preferred embodiment. However, it will be appreciated that variations and modifications can be effected by a person of ordinary skill in the art without departing from the scope of the invention.

APPENDIX A I. Mathematical Based Description

We shall deal with images of a scene taken at time moments within some time interval t. A time-varying image sequence is a sequence of images of a given scene with each successive image taken some time interval apart from the one preceding it. Given a time-varying image sequence of a scene corresponding to some sequence of time moments from the time interval t, it is often desirable to construct a time-varying image sequence of the same scene corresponding to some other sequence of time moments from the time interval t by constructing an intermediate image(s) (the images of a desired time-varying image sequence not present in a given time-varying image sequence). The algorithm to be described relates to a method for constructing a desired time-varying image sequence from a given time-varying image sequence by constructing an intermediate image herein after called the missing image.

To construct a missing image, first the correspondence between the missing image and the images of a given time-varying image sequence that surround the missing image is established. Then this correspondence is used to estimate the missing image through an interpolation process. The correspondence between the missing image and the surrounding images of a given time-varying image sequence establishes the apparent movements in these three images caused by the movements of objects in the scene. These apparent movements can be characterized by a velocity vector field defined on the missing image and linearly relating each point of the missing image to the points of the surrounding images. The construction of the missing image is then done in two stages: first the velocity vector field is estimated, second the estimate of the velocity vector field is used in a motion-compensated interpolation to obtain the missing image. Not all image points (pixels) will have corresponding points (pixels) in the given surrounding images, primarily due to occlusions, and allowances must be made to construct missing images with these occurrences.

Every image of the given time-varying image sequence is assumed to be obtained by projecting the light reflected by the visible portions of the objects in the scene at the time the image is taken onto an image plane, and then identifying the irradiance values of each image point (pixel) in the image plane. If the scene being imaged changes gradually with time, and if the changes are mostly due to the relative movements of the physical objects in space, then the corresponding changes in the successive images of the given time-varying image sequence can be used to estimate the velocity vector fields of the images. The original scene is shown captured in Frame 1 as a plurality of pixel values, P₁ -P₃, for example. As is well known, the number of pixels to represent an image is dependent on a number of factor including the number of persons used in the photo sensor array capturing the sequence of scenes. In a three color system, three pixel values are used to record the scenes color at a pixel paint (location). These are denoted as the red, green, and blue values for an R, G, B, system.

II. Overview of the Estimation Algorithm

An image of a scene is modeled as a perspective projection of a scene onto an image plane and captured as a frame. The axes of the scene coordinate system are defined as the horizontal axis, the vertical axis, and the depth axis. The images of the scene are assumed to be in the same plane which is parallel to the horizontal and the vertical axes of the scene coordinate system. It is assumed that the horizontal and the vertical axes of each image are parallel respectively to the horizontal and the vertical axes of the scene. In what follows the horizontal image coordinates are denoted with the symbol x, the vertical image coordinates are denoted with the symbol y, and the time moments are denoted with the symbol t. For the missing image at the time moment t the horizontal component of the estimate of the velocity vector at the image point (x,y) is denoted by u(x,y,t), while the vertical component of the estimate of the velocity vector at the image point (x,y) is denoted by υ(x,y,t). The estimate of the velocity vector field corresponding to the missing image at the time t is defined on some grid of points Ω_(t) in the image plane and is denoted as (u(t), v(t))≡{(u(x,y,t), υ(x,y,t))|(x,y)εΩ_(t) }. The grid of image points Ω_(t) is assumed to be generated by some vectors h_(t),1 and h_(t),2 in the image plane, which means that every image point (x,y) from the grid Ω_(t) can be expressed in the form (x,y)=ih_(t),1 +jh_(t),2, where ih_(t),1 +jh_(t),2 is a linear combination of the vectors h_(t),1, h_(t),2 with integer coefficients i,j.

Let the time moments of the given time-varying image sequence be t_(P), t_(Q) ; and let the time moments of the desired time-varying image sequence be t₁, . . . , t_(K). The sequence of time moments t₁, . . . t_(K) is assumed to be increasing and intermediate to the increasing sequence of time moments t_(P), t_(Q). The given image of the scene taken at the time moment t_(P), called the previous image, and the given image of the scene taken at the time moment t_(Q), called the next image, are digitized into multi-banded digital images, RGB for example, with three bands, B. For a monochrome version there would only be one band B. Each band of the previous and next digital images is defined as a two-dimensioned array of numbers representing for example, the digital values of R, G and B, known as pixel values, taken from a grid of points on the image plane. The bands of the previous digital image are defined on some grid of image points Ω_(t).sbsb.P, which is assumed to be generated by some vectors h_(t).sbsb.P,₁ and h_(t).sbsb.P,₂ in the image plane. The bands of the next digital image are defined on some grid of image points Ω_(t).sbsb.Q, which is assumed to be generated by some vectors h_(t).sbsb.Q,₁ and h_(t).sbsb.Q,₂ in the image plane.

Given the previous digital image, which is defined on the grid of image points Ω_(t).sbsb.P, taken at the time moment t_(P) and consisting of the bands I_(t).sbsb.P,_(b), b=1, . . . , B, where b, for example, at value 1 represents the red pixel component value, and b at 2 the green component value, and b at 3 the blue component value, and given the next digital image, which is defined on the grid of image points Ω_(t).sbsb.Q, taken at the time moment t_(Q) and consisting of the bands I_(t).sbsb.Q,_(b), b=1, . . . , B, the process of constructing the desired time-varying image sequence consisting of the bands I_(t).sbsb.1,_(b), . . . , I_(t).sbsb.K,_(b), b=1, . . . , B can be described as follows. First, the estimates (u(t₁),v(t₁)), . . . , (u(t_(K)),v(t_(K))) of the velocity vector fields, corresponding to the missing images at the time moments t₁, . . . , t_(K) respectively, are computed. The estimates (u(t₁),v(t₁)), . . . , (u(t_(K)),v(t_(K))) of the velocity vector fields are defined on the grids of image points Ω_(t).sbsb.1, . . . , Ω_(t).sbsb.K respectively. Then for each band b=1, . . . , B and for each time moment t_(k), k=1, . . . , K, the estimate I_(t).sbsb.k,_(b) of the missing image band, which is defined on the grid of image points Ω_(t).sbsb.k, is obtained by the motion-compensated interpolation process.

It is an object of the invention to improve the accuracy of the estimation of the velocity vector field (u(t₁),v(t₁)), . . . , (u(t_(K)),v(t_(K))), by the following actions: first, partitioning the grids Ω_(t).sbsb.P, Ω_(t).sbsb.Q into corresponding disjoint regions, Ω_(t).sbsb.P.sub.ƒ, Ω_(t).sbsb.Q.sub.ƒ, ƒ=1, . . . , F, representing distinct objects in the images of a scene; second, performing the estimation process separately for each pair Ω_(t).sbsb.P.sub.ƒ, Ω_(t).sbsb.Q.sub.ƒ of the corresponding regions, resulting in the velocity vector fields (u.sub.ƒ (t₁),v.sub.ƒ (t₁)), . . . , (u.sub.ƒ (t_(K)),v.sub.ƒ (t_(K))), ƒ=1, . . . , F; and then combining the velocity vector fields (u₁ (t_(k)),v₁ (t_(k))), . . . , (u_(F) (t_(k)),v_(F) (t_(k))) to form the velocity vector field (u(t_(k)),v(t_(k))), for every k=1, . . . , K. The partitioning is specified by providing the corresponding sets of connected line segments on the previous and the next images representing the boundaries of the regions. This task is performed by an operator outlining the objects using a graphical user interface to encompass each object. The partitioning is accomplished by integrating the specified boundaries of the previous and next images into the regions and then attaching a distinct integer label to the points of each set of the corresponding regions. The following convention is used: the regions with the higher label values may occlude the regions with the lower label values, and the regions with the higher label values may not be occluded by the regions with the lower label values.

III. Description of the Correspondence Algorithm

The proposed method of estimating the velocity vector field is based on the multi-level resolution approach where for every label the estimation process starts at the coarsest level of resolution with some constant velocity vector field taken as the initial estimate. This initial estimate of the velocity vector field is iteratively improved by solving the system of nonlinear equations and the resulted improved estimate is projected to the next finer level of resolution. The process is repeated until the final finest resolution level is reached.

In what follows, the symbol σ is used to denote the current resolution level, the symbol M is used to denote the number of resolution levels, and the sequence of symbols σ₁, . . . , σ_(M) is used to denote the sequence of resolution levels listed in the fine-to-coarse order. For each label ƒ=1, . . . , F, each resolution level σ=σ₁, . . . , σ_(M), and each k=1, . . . , K, the estimate of the velocity vector field at the resolution level σ corresponding to the label ƒ and the missing image at the time moment t_(k) is defined on some grid Ω_(t).sbsb.k.sup.σ of points in the image plane and is denoted as (u_(f).sup.σ (t_(k)),v_(f).sup.σ (t_(k)))≡{(u_(f).sup.σ (x,y,t_(k)),υ.sub.ƒ.sup.σ (x,y,t_(k)))|(x,y)εΩ_(t).sbsb.k.sup.σ }, while the improvement of the estimate of the velocity vector field at the resolution level σ corresponding to the label ƒ and the missing image at the time moment t_(k) is defined on the same grid Ω_(t).sbsb.k.sup.σ of points in the image plane and is denoted as (Δu_(f).sup.σ (t_(k)),Δv_(f).sup.σ (t_(k)))≡{(Δu_(f).sup.σ (x,y,t_(k)),Δυ_(f).sup.σ (x,y,t_(k)))|(x,y)εΩ_(t).sbsb.k.sup.σ }. For each resolution level σ=σ₁, . . . , σ_(M), and each k=1, . . . , K, the following is assumed to be held; the grid of points Ω_(t).sbsb.k,.sup.σ is generated by some vectors h_(t).sbsb.k.sup.σ₁ and h_(t).sbsb.k,.sup.σ₂ in the image plane; and the grid of points Ω_(t).sbsb.k in the image plane is assumed to be surrounded by the grid of points Ω_(t).sbsb.k⁹⁴ , meaning that the convex hall of the grid of points Ω_(t).sbsb.k belongs to the convex hall of the grid of points Ω_(t).sbsb.k.sup.σ.

For each label f=1, . . . , F, on each level σ=σ₁, . . . , σ_(M) of the multi-level resolution process, and for each k=1, . . . , K, a system of nonlinear equations relative to the unknown current estimate (u.sub.ƒ.sup.σ (t_(k)), v.sub.ƒ.sup.σ (t_(k))) of the velocity vector field is formed, then the iterative improvement (Δu_(f).sup.σ (t_(k)),Δv_(f).sup.σ (t_(k))) of the current estimate (u_(f).sup.σ (t_(k)),v_(f).sup.σ (t_(k))) of the velocity vector field is achieved by solving the system of linear equations which is the linearization of this system of nonlinear equations about the current estimate (u_(f).sup.σ (t_(k)),(v_(f).sup.σ (t_(k)) of the velocity vector field. The iterative improvement (Δu_(f).sup.σ (t_(k)),Δv_(f).sup.σ (t_(k)) of the current estimate (u_(f).sup.σ (t_(k)),(v_(f).sup.σ (t_(k))) of the velocity vector field is added to the current estimate (u_(f).sup.σ (t_(k)),(v_(f).sup.σ (t_(k))) of the velocity vector field to obtain a new current estimate of the velocity vector field and the above process of the iterative improvement of the current estimate (u_(f).sup.σ (t_(k)),(v_(f).sup.σ (t_(k))) of the velocity vector field is repeated until the system of nonlinear equations relative to the current estimate (u_(f).sup.σ (t_(k)),(v_(f).sup.σ (t_(k))) of the velocity vector field is properly satisfied at which point the current estimate (u_(f).sup.σ (t_(k)),(v_(f).sup.σ (t_(k))) of the velocity vector field is taken as the final estimate (u_(f),.sup.σ₁ (t_(k)),(v_(f),.sup.σ₁ (t_(k))) of the velocity vector field at the resolution level σ.

For every f=1, . . . , F, every σ=σ₁, . . . , σ_(M), and every k=1, . . . , K, the system of nonlinear equations relative to the unknown current estimate (u_(f).sup.σ (t_(k)),(v_(f).sup.σ (t_(k))) of the velocity vector field is defined in terms of the unknown current estimate (u_(f).sup.σ (t_(k)),(v_(f).sup.σ (t_(k))) of the velocity vector field, and in terms of the quantities related to the values of previous and next images of the given time-varying image sequence and to the values of the generalized spatial partial derivatives of previous and next images of the given time-varying image sequence. The quantities related to the values of the previous image of the given time-varying image sequence, called the previous filtered image function and denoted as g.sup.σ (x,y,t_(P)), and the quantities related to the values of the next image of the given time-varying image sequence, called the next filtered image function and denoted as g.sup.σ (x,y,t_(Q)), are obtained by selectively, with respect to the partitioning, filtering each band of previous and next images with two filters: the horizontal derivative of the Gaussian-like filter and the vertical derivative of the Gaussian-like filter. The selective, with respect to the partitioning, filtering of previous and next images is defined in the next section as the filtering that does not mix the image values at the image points belonging to different regions of the respective grid partitioning. The quantities related to the values of the generalized x-spatial partial derivative of the previous image of the given time-varying image sequence, called the x-spatial partial derivative of the previous filtered image function and denoted as g_(x).sup.σ (x,y,t_(P)), and the quantities related to the values of the generalized x-spatial partial derivative of the next image of the given time-varying image sequence, called the x-spatial partial derivative of the next filtered image function and denoted as g_(x).sup.σ (x,y,t_(Q)), are obtained by selectively, with respect to the partitioning, filtering each band of previous and next images with the x-spatial partial derivative of each of the above two filters. The quantities related to the values of the generalized y-spatial partial derivative of the previous image of the given time-varying image sequence, called the y-spatial partial derivative of the previous filtered image function and denoted as g_(y).sup.σ (x,y,t_(P)), and the quantities related to the values of the generalized y-spatial partial derivative of the next image of the given time-varying image sequence, called the y-spatial partial derivative of the next filtered image function and denoted as g_(y).sup.σ (x,y,t_(Q)), are obtained by selectively, with respect to the partitioning, filtering each band of previous and next images with the y-spatial partial derivative of each of the above two filters.

For each t=t_(P), t_(Q), the grid of all points on the image plane generated by the vectors h_(t),1, h_(t),2 is denoted by the symbol H(h_(t),1,h_(t),2). The symbol G is used for the set of indices with each index gεG specifying a particular band and a particular filter. For each time moment t=t_(P), t_(Q), each resolution level σ=σ₁, . . . , σ_(M), and each index gεG, the filter function is denoted by the symbol φ_(g).sup.σ (x,y,t). In the case of the horizontal derivative of the Gaussian-like filter, the filter function φ_(g).sup.σ (x,y,t) is defined by the relation ##EQU1## for every (x,y)εH(h_(t),1 h_(t),2), such that α.sub.σ² x² +β.sub.σ² y² <ω² ; while in the case of the vertical derivative of the Gaussian-like filter, the filter function φ_(g).sup.σ (x,y,t) is defined by the relation ##EQU2## for every (x,y)εH(h_(t),1,h_(t),2), such that α.sub.σ² x² +β.sub.σ² y² <ω². Here α.sub.σ, β.sub.σ and ω are positive constants. At the coarsest resolution level the constants α.sub.σ, β.sub.σ are set to a relatively small value, and at each finer resolution level the constants α.sub.σ, β.sub.σ are set to the increased by a fixed multiplicative factor values of the constants α.sub.σ, β.sub.σ at the coarser resolution level.

For each σ=σ₁, . . . , σ_(M), the previous filtered image functions g.sup.σ (x,y,t_(P)), gεG, the x-spatial partial derivatives of the previous filtered image functions g_(x).sup.σ (x,y,t_(P)), gεG, and the y-spatial partial derivatives of the previous filtered image functions g_(y).sup.σ (x,y,t_(P)), gεG are defined on the subgrid Ω_(t).sbsb.P.sup.σ of the grid of points Ω_(t).sbsb.P on the image plane, which is generated by some vectors h_(t).sbsb.P,.sup.σ₁ and h_(t).sbsb.P,.sup.σ₂, with the property: for every (x₁,y₁)εΩ_(t).sbsb.P.sup.σ and every (x₂,y₂)εH(h_(t).sbsb.P,.sup.σ₁,h_(t).sbsb.P,.sup.σ₂), such that α.sub.σ² x₂ ² +β.sub.σ² y₂ ² <ω², the point (x,y)=(x₁,y₁)+(x₂,y₂) belongs to the grid Ω_(t).sbsb.P. For each σ=σ₁, . . . , σ_(M), the next filtered image functions g.sup.σ (x,y,t_(Q)), gεG, the x-spatial partial derivatives of the next filtered image functions g_(x).sup.σ (x,y,t_(Q)), gεG, and the y-spatial partial derivatives of the next filtered image functions g_(y).sup.σ (x,y,t_(Q)), gεG are defined on the subgrid Ω_(t).sbsb.Q.sup.σ of the grid of points Ω_(t).sbsb.Q on the image plane, which is generated by some vectors h_(t).sbsb.Q,.sup.σ₁ and h_(t).sbsb.Q,.sup.σ₂, with the property: for every (x₁,y₁)εΩ_(t).sbsb.Q.sup.σ and every (x₂,y₂)εH(h_(t).sbsb.Q,.sup.σ₁,h_(t).sbsb.Q,.sup.σ₂), such that α.sub.σ² x₂ ² +β.sub.σ² y₂ ² <ω², the point (x,y)=(x₁,y₁)+(x₂,y₂) belongs to the grid Ω_(t).sbsb.Q.

The multi-level resolution process is build around a multi-level resolution pyramid meaning that on each coarser resolution level the previous filtered image functions and their spatial partial derivatives, the next filtered image functions and their spatial partial derivatives, and the estimates of the velocity vector fields are defined on subgrids of the corresponding grids at a finer resolution level. The grid rotation method, which complies with the requirements of the resolution pyramid, is used to define the grids Ω_(t).sbsb.P.sup.σ, Ω_(t).sbsb.Q.sup.σ, Ω_(t).sbsb.k.sup.σ, k=1, . . . , K, σ=σ₁, . . . , σ_(M). In this method, the grids are constructed sequentially starting with the finest resolution level and preceding towards the coarsest resolution level. The grids of the coarser resolution level are obtained from the grids of the finer resolution level by omiting the even grid points on the odd grid lines and by omiting the odd grid points on the even grid lines, and thereby rotating the grid lines of the grids of the finer resolution level by 45 degree. More precisely, these grids are defined as follows: for every t=t_(P), t_(Q), t_(I), . . . , t_(K), m=2, . . . , M, the grid Ω_(t).sup.σ.sbsp.m is sequentially defined as the subgrid of the grid Ω_(t).sup.σ.sbsp.m-1 generated by the vectors h_(t),1.sup.σ.sbsp.m, h_(t),2.sup.σ.sbsp.m, where the vectors h_(t),1.sup.σ.sbsp.m, h_(t),2.sup.σ.sbsp.m are defined by the relation

    h.sub.t,1.sup.σ.sbsp.m =h.sub.t,1.sup.σ.sbsp.m-1 +h.sub.t,2.sup.σ.sbsp.m-1,

    h.sub.t,2.sup.σ.sbsp.m =h.sub.t,1.sup.σ.sbsp.m-1 -h.sub.t,2.sup.σ.sbsp.m-1.                          (3-3)

The proposed method of computing the estimates of the velocity vector fields, (u(t_(k)),v(t_(k))), k=1, . . . , K, can be summerized as the follows:

1. Start with the label value F taken as the current label value f.

2. Start with the coarsest resolution level σ_(M) taken as the current resolution level σ.

3. In the case of the current resolution level σ being the coarsest resolution level σ_(M), set the initial estimate (u_(f),0.sup.σ (t_(k)),v_(f),0.sup.σ (t_(k))) of the velocity vector field to some given (for example, constant) value, for every k=1, . . . , K; otherwise project the final estimate (u_(f),1.sup.δ(σ (t_(k)),v_(f),1.sup.δ(σ) (t_(k))) of the velocity vector field at the previous coarser resolution level δ(σ)=σ_(m+1) to the current resolution level σ=σ_(m) to obtain the initial estimate (u_(f),0.sup.σ (t_(k)),v_(f),0.sup.σ (t_(k))) of the velocity vector field at the current resolution level σ, for every k=1, . . . , K. Take the initial estimate (u_(f),0.sup.σ (t_(k)),v_(f),0.sup.σ (t_(k))) of the velocity vector field at the current resolution level as the current estimate (u_(f).sup.σ (t_(k)),v_(f).sup.σ (t_(k))) of the velocity vector field at the current resolution level σ, for every k=1, . . . , K.

4. Iteratively improve the current estimate (u_(f).sup.σ (t_(k)),v_(f).sup.σ (t_(k))) of the velocity vector field to obtain the final estimate (u_(f),1.sup.σ (t_(k)),v_(f),1.sup.σ (t_(k))) of the velocity vector field at the current resolution level σ, for every k=1, . . . , K.

5. Take the next finer resolution level σ_(m-1) as the current resolution level σ.

6. Repeat step 3 to step 5 until the finest resolution level σ=σ₁ is reached.

7. Take the next smaller label value f-1 as the current label value f.

8. Repeat step 2 to step 7 until the smallest label value f=1 is reached.

9. Bilinearly interpolate the final estimate (u_(f),1.sup.σ (t_(k)),v_(f),1.sup.σ (t_(k))) of the finest resolution level σ=σ₁ to the grid of points Ω_(t).sbsb.k on the image plane to obtain the estimate (u_(f) (t_(k)),v_(f) (t_(k))) of the velocity vector field corresponding to the label value f and to the missing image at the time moment t_(k), for every f=1, . . . , F, and every k=1, . . . K.

10. Combine the estimates (u_(f) (t_(k)),v_(f) (t_(k))), f=1, . . . , F of the velocity vector field to obtain the estimate (u(t_(k)), v(t_(k))) of the velocity vector field, for every k=1, . . . , K.

IV. Computation of the Filtered Image Functions

For a given time moment t=t_(P), t_(Q), and for every resolution level σ=σ₁, . . . , σ_(M), let the sequence of the subgrids Ω_(t),f.sup.σ, f=1, . . . , F of the grid Ω_(t).sup.σ be the disjoint partitioning of the grid Ω_(t).sup.σ defined in terms of the disjoint partitioning Ω_(t),f, f=1, . . . , F of the grid Ω_(t) as follows. For every f=1, . . . , F, let Γ_(t),f.sup.σ be the subgrid of the grid Ω_(t).sup.σ consisting of the image points (x,y)=(x₁,y₁)+(x₂,y₂), for every (x₁,y₁)εΩ_(t),f ∩Ω_(t).sup.σ and every (x₂,y₂)εH(h_(t),1.sup.σ,h_(t),2.sup.σ) such that α.sub.σ² x₂ ² +β.sub.σ² y₂ ² <ω². Then for every f=1, . . . , F, Ω_(t),f.sup.σ is defined as the subgrid of the grid Ω_(t).sup.σ consisting of those points of the union of the subgrids Γ_(t),f.sup.σ, . . . , Γ_(t),F.sup.σ that do not belong to the union of the subgrids Γ_(t),f+1.sup.σ, . . . , Γ_(t),F.sup.σ.

For each time moment t=t_(P), t_(Q), each resolution level σ=σ₁, . . . , σ_(M), each label f=1, . . . , F, each index gεG, and each image point (x,y)εΩ_(t),f.sup.σ, the value g.sup.σ (x,y,t) of the filtered image function is given by the relation ##EQU3## the value g_(x).sup.σ (x,y,t) of the x-spatial partial derivative of the filtered image function g.sup.σ (x,y,t) is given by the relation ##EQU4## the value g_(y).sup.σ (x,y,t) of the y-spatial partial derivative of the filtered image function g.sup.σ (x,y,t) is given by the relation ##EQU5## where: b_(g) is the band corresponding to the index g, and the function I_(t),f,b.sbsb.g (x',y') is equal to the image function I_(t),b.sbsb.g (x',y') for every (x',y')εΩ_(t),f and is equal to zero otherwise.

V. Optical Flow and Directional Smoothness Constraints

For each k=1, . . . , K, each σ=σ₁, . . . , σ_(M), and each f=1, . . . , F, the system of nonlinear equations relative to the unknown current estimate (u_(f).sup.σ (t_(k)),v_(f).sup.σ (t_(k))) of the velocity vector field forms a compromise between optical flow and directional smoothness constraints. The optical flow constraints, represented by optical flow functions and their spatial partial derivatives, relate the values of the next and previous filtered image functions at the corresponding image points. The directional smoothness constraints, represented by the directional smoothness functions, relate the values of neighboring velocity vectors.

For each index gεG specifying a particular filter and a particular image band, for the following three functions defined on the grid of image points (x,y)εΩ_(t).sbsb.k.sup.σ : an optical flow function g_(t).sup.σ (f,x,y,t_(k),u_(f).sup.σ (x,y,t_(k)),v_(f).sup.σ (x,y,t_(k))), a spatial partial with respect to the component u_(f).sup.σ (x,y,t_(k)) of the velocity vector derivative g_(tu).sup.σ (f,x,y,t_(k),u_(f).sup.σ (x,y,t_(k)),v_(f).sup.σ (x,y,t_(k))) of the optical flow function g_(t).sup.σ (f,x,y,t_(k),u_(f).sup.σ (x,y,t_(k)),v_(f).sup.σ (x,y,t_(k))), and a spatial partial with respect to the component v_(f).sup.σ (x,y,t_(k)) of the velocity vector derivative g_(tv).sup.σ (f,x,y,t_(k),u_(f).sup.σ (x,y,t_(k)),v_(f).sup.σ (x,y,t_(k))) of the optical flow function g_(t).sup.σ (f,x,y,t_(k),u_(f).sup.σ (x,y,t_(k)),v_(f).sup.σ (x,y,t_(k))). The value of the optical flow function g_(t).sup.σ (f,x,y,t_(k),u_(f).sup.σ (x,y,t_(k)),v_(f).sup.σ (x,y,t_(k))) is equal to the scaled by the factor 1/(t_(Q) -t_(P)) difference between the estimated next filtered image function and the estimated previous filtered image function at the points (x,y) of the grid Ω_(t).sbsb.k.sup.σ where both the estimate next filtered image function and the estimated previous filtered image function are defined and equal to zero otherwise. The value of the spatial partial with respect to the component u_(f).sup.σ (x,y,t_(k)) of the velocity vector derivative g_(tu).sup.σ (f,x,y,t_(k),u_(f).sup.σ (x,y,t_(k)),v_(f).sup.σ (x,y,t_(k))) of the optical flow function is equal to the sum of the scaled by the factor (t_(Q) -t_(k))/(t_(Q) -t_(P)) spatial partial with respect to the component x derivative of the estimated next filtered image function and the scaled by the factor (t_(k) -t_(P))/(t_(Q) -t_(P)) spatial partial with respect to the component x derivative of the estimated previous filtered image function at the points (x,y) of the grid Ω_(t).sbsb.k.sup.σ where both the spatial partial with respect to the component x derivative of the estimated next filtered image function and the spatial partial with respect to the component x derivative of the estimated previous filtered image function are defined and equal to zero otherwise. The value of the spatial partial with respect to the component v_(f).sup.σ (x,y,t_(k)) of the velocity vector derivative g_(tv).sup.σ (f,x,y,t_(k),u_(f).sup.σ (x,y,t_(k)),v_(f).sup.σ (x,y,t_(k))) of the optical flow function is equal to the sum of the scaled by the factor (t_(Q) -t_(k))/(t_(Q) -t_(P)) spatial partial with respect to the component y derivative of the estimated next filtered image function and the scaled by the factor (t_(k) -t_(P))/(t_(Q) -t_(P)) spatial partial with respect to the component y derivative of the estimated previous filtered image function at the points (x,y) of the grid Ω_(t).sbsb.k.sup.σ where both the spatial partial with respect to the component y derivative of the estimated next filtered image function and the spatial partial with respect to the component y derivative of the estimated previous filtered image function are defined and equal to zero otherwise.

To obtain the estimated next filtered image function, the spatial partial with respect to the component x derivative of the estimated next filtered image function, and the spatial partial with respect to the component y derivative of the estimated next filtered image function, find the grid of image points Ω_(t).sbsb.Q.sup.σ (u_(f).sup.σ (t_(k)),v_(f).sup.σ (t_(k))), which are the taken at the time moment t_(Q) estimated perspective projections onto the image plane of the visible points in the scene, whose perspective projections onto the image plane at the time moment t_(k) are the grid points Ω_(t).sbsb.k.sup.σ ; and then bilinearly interpolate the next filtered image function g.sup.σ (x,y,t_(Q)), the spatial partial with respect to the component x derivative g_(x).sup.σ (x,y,t_(Q)) of the next filtered image function, and the spatial partial with respect to the component y derivative g_(y).sup.σ (x,y,t_(Q)) of the next filtered image function, from the grid of points Ω_(t).sbsb.Q.sup.σ to those points of the grid Ω_(t).sbsb.Q.sup.σ (u_(f).sup.σ (t_(k)),v_(f).sup.σ (t_(k))) that are surrounded by the points of the grid Ω_(t).sbsb.Q.sub.,f.sup.σ. To obtain the estimated previous filtered image function, the spatial partial with respect to the component x derivative of the estimated previous filtered image function, and the spatial partial with respect to the component y derivative of the estimated previous filtered image function, find the grid of image points Ω_(t).sbsb.P.sup.σ (u_(f).sup.σ (t_(k)),v_(f).sup.σ (t_(k))), which are the taken at the time moment t_(P) estimated perspective projections onto the image plane of the visible points in the scene, whose perspective projections onto the image plane at the time moment t_(k) are the grid points Ω_(t).sbsb.k.sup.σ ; and then bilinearly interpolate the previous filtered image function g.sup.σ (x,y,t_(P)), the spatial partial with respect to the component x derivative g_(x).sup.σ (x,y,t_(P)) of the previous filtered image function, and the spatial partial with respect to the component y derivative g_(y).sup.σ (x,y,t_(P)) of the previous filtered image function, from the grid of points Ω_(t).sbsb.P.sup.σ to those points of the grid Ω_(t).sbsb.P.sup.σ (u_(f).sup.σ (t_(k)),v_(f).sup.σ (t_(k))) that are surrounded by the points of the grid Ω_(t).sbsb.P.sub.,f.sup.σ. To obtain the grid of image points Ω_(t).sbsb.Q.sup.σ (u_(f).sup.σ (t_(k)),v_(f).sup.σ (t_(k))), each image point of the grid Ω_(t).sbsb.k.sup.σ is shifted by the amount equal to the scaled by the factor (t_(Q) -t_(k)) value of the estimated velocity vector defined at that grid point. To obtain the grid of image points Ω_(t).sbsb.P.sup.σ (u_(f).sup.σ (t_(k)),v_(f).sup.σ (t_(k))), each image point of the grid Ω_(t).sbsb.k.sup.σ is shifted by the amount equal to the scaled by the factor (t_(P) -t_(k)) value of the estimated velocity vector defined at that grid point.

Let (x,y) be an image point from the grid Ω_(t).sbsb.k.sup.σ where the estimated next filtered image function, its spatial partial with respect to the component x and to the component y derivatives, the estimated previous filtered image function, and its spatial partial with respect to the component x and to the component y derivatives are all defined, then the value g_(t).sup.σ (f,x,y,t_(k),u_(f).sup.σ (x,y,t_(k)), v_(f).sup.σ (x,y,t_(k))) of the optical flow function, the value g_(tu).sup.σ (f,x,y,t_(k),u_(f).sup.σ (x,y,t_(k)),v_(f).sup.σ (x,y,t_(k))) of the spatial partial with respect to the component u_(f).sup.σ (x,y,t_(k)) of the velocity vector derivative of the optical flow function and the value g_(tv).sup.σ (f,x,y,t_(k),u_(f).sup.σ (x,y,t_(k)),v_(f).sup.σ (x,y,t_(k))) of the spatial partial with respect to the component v_(f).sup.σ (x,y,t_(k)) of the velocity derivative of the optical flow function at the image point (x,y) can be more precisely defined as follows. The point (x+(t_(Q) -t_(k))u_(f).sup.σ (x,y,t_(k)),y+(t_(Q) -t_(k))v_(f).sup.σ (x,y,t_(k))) of the grid Ω_(t).sbsb.Q.sup.σ (u_(f).sup.σ (t_(k)),v_(f).sup.σ (t_(k))) can be expressed in the following form

    (x+(t.sub.Q -t.sub.k)u.sub.f.sup.σ (x,y,t.sub.k),y+(t.sub.Q -t.sub.k)v.sub.f.sup.σ (x,y,t.sub.k))=(i.sub.t.sbsb.Q.sub.,1.sup.σ +θ.sub.t.sbsb.Q.sub.,1.sup.σ)h.sub.t.sbsb.Q.sub.,1.sup.σ +(i.sub.t.sbsb.Q.sub.,2.sup.σ +θ.sub.t.sbsb.Q.sub.,2.sup.σ)h.sub.t.sbsb.Q.sub.,2.sup.σ.                                                          (5-1)

for some integer numbers i_(t).sbsb.Q.sub.,1.sup.σ, i_(t).sbsb.Q.sub.,2.sup.σ and for some real numbers θ_(t).sbsb.Q.sub.,1.sup.σ, θ_(t).sbsb.Q.sub.,2.sup.σ from the interval [0,1]. The fact that the estimated next filtered image function and its spatial partial with respect to the component x and to the component y derivatives are defined at the point (x,y) means that the point (x+(t_(Q) -t_(k))u_(f).sup.σ (x,y,t_(k)),y+(t_(Q) -t_(k)),v_(f).sup.σ (x,y,t_(k))) of the grid Ω_(t).sbsb.Q.sup.σ (u_(f).sup.σ (t_(k)),v_(f).sup.σ (t_(k))) is surrounded by the following points of the grid Ω_(t).sbsb.Q.sub.,f.sup.σ :

    (x.sub.t.sbsb.Q.sub.,1,y.sub.t.sbsb.Q.sub.,1)=i.sub.t.sbsb.Q.sub.,1.sup..sigma. h.sub.t.sbsb.Q.sub.,1.sup.σ +i.sub.t.sbsb.Q.sub.,2.sup.σ h.sub.t.sbsb.Q.sub.,2.sup.σ,                        (5-2)

    (x.sub.t.sbsb.Q.sub.,2,y.sub.t.sbsb.Q.sub.,2)=(i.sub.t.sbsb.Q.sub.,1.sup..sigma. +1)h.sub.t.sbsb.Q.sub.,1.sup.σ +i.sub.t.sbsb.Q.sub.,2.sup.σ h.sub.t.sbsb.Q.sub.,2.sup.σ, (5-3)

    (x.sub.t.sbsb.Q.sub.,3,y.sub.t.sbsb.Q.sub.,3)=i.sub.t.sbsb.Q.sub.,1.sup..sigma. h.sub.t.sbsb.Q.sub.,1.sup.σ +(i.sub.t.sbsb.Q.sub.,2.sup.σ +1)h.sub.t.sbsb.Q.sub.,2.sup.σ,                     (5-4)

    (x.sub.t.sbsb.Q.sub.,4,y.sub.t.sbsb.Q.sub.,4)=(i.sub.t.sbsb.Q.sub.,1.sup..sigma. +1)h.sub.t.sbsb.Q.sub.,1.sup.σ +(i.sub.t.sbsb.Q.sub.,2.sup.σ +1)h.sub.t.sbsb.Q.sub.,2.sup.σ.(5-5)

The point (x+(t_(P) -t_(k))u_(f).sup.σ (x,y,t_(k)),y+(t_(P) -t_(k))v_(f).sup.σ (x,y,t_(k))) of the grid Ω_(t).sbsb.P.sup.σ (u_(f).sup.σ (t_(k)),v_(f).sup.σ (t_(k))) can be expressed in the following form

    (x+(t.sub.P -t.sub.k)u.sub.f.sup.σ (x,y,t.sub.k),y+(t.sub.P -t.sub.k)v.sub.f.sup.σ (x,y,t.sub.k))=(i.sub.t.sbsb.P.sub.,1.sup.σ +θ.sub.t.sbsb.P.sub.,1.sup.σ)h.sub.t.sbsb.P.sub.,1.sup.σ +(i.sub.t.sbsb.P.sub.,2.sup.σ +θ.sub.t.sbsb.P.sub.,2.sup.σ)h.sub.t.sbsb.P.sub.,2.sup.σ.(5-6)

for some integer numbers i_(t).sbsb.P.sub.,1.sup.σ, i_(t).sbsb.P.sub.,2.sup.σ and for some real numbers θ_(t).sbsb.P.sub.,1.sup.σ, θ_(t).sbsb.P.sub.,2.sup.σ from the interval [0,1]. The fact that the estimated previous filtered image function and its spatial partial with respect to the component x and to the component y derivatives are defined at the point (x,y) means that the point (x+(t_(P) -t_(k))u_(f).sup.σ (x,y,t_(k)),y+(t_(P) -t_(k))v_(f).sup.σ (x,y,t_(k))) of the grid Ω_(t).sbsb.P.sup.σ (u_(f).sup.σ (t_(k)),v_(f).sup.σ (t_(k))) is surrounded by the following points of the grid Ω_(t).sbsb.P.sub.,f.sup.σ :

    (x.sub.t.sbsb.P.sub.,1,y.sub.t.sbsb.P.sub.,1)=i.sub.t.sbsb.P.sub.,1.sup..sigma. h.sub.t.sbsb.P.sub.,1.sup.σ +i.sub.t.sbsb.P.sub.,2.sup.σ h.sub.t.sbsb.P.sub.,2.sup.σ,                        (5-7)

    (x.sub.t.sbsb.P.sub.,2,y.sub.t.sbsb.P.sub.,2)=(i.sub.t.sbsb.P.sub.,1.sup..sigma. +1)h.sub.t.sbsb.P.sub.,1.sup.σ +i.sub.t.sbsb.P.sub.,2.sup.σ h.sub.t.sbsb.P.sub.,2.sup.σ,(5-8)

    (x.sub.t.sbsb.P.sub.,3,y.sub.t.sbsb.P.sub.,3)=i.sub.t.sbsb.P.sub.,1.sup..sigma. h.sub.t.sbsb.P.sub.,1.sup.σ +(i.sub.t.sbsb.P.sub.,2.sup.σ +1)h.sub.t.sbsb.P.sub.,2.sup.σ,                     (5-9)

    (x.sub.t.sbsb.P.sub.,4,y.sub.t.sbsb.P.sub.,4)=(i.sub.t.sbsb.P.sub.,1.sup..sigma. +1)h.sub.t.sbsb.P.sub.,1.sup.σ +(i.sub.t.sbsb.P.sub.,2.sup.σ +1)h.sub.t.sbsb.P.sub.,2.sup.σ.(5-10)

The value g_(t).sup.σ (f,x,y,t_(k),u_(f).sup.σ (x,y,t_(k)),v_(f).sup.σ (x,y,t_(k))) of the optical flow function at the image point (x,y) is given by the relation ##EQU6## where the value g.sup.σ (x+(t_(Q) -t_(k))u_(f).sup.σ (x,y,t_(k)),y+(t_(Q) -t_(k))ν_(f).sup.σ (x,y,t_(k)),t_(Q)) of the estimated next filtered image function is given as the following bilinear interpolation ##EQU7## of the values of the next filtered image function at the image points defined by the relations (5-2), (5-3), (5-4), (5-5); while the value g.sup.σ (x+(t_(P) -t_(k))u_(f).sup.σ (x,y,t_(k)),y+(t_(P) -t_(k))v_(f).sup.σ (x,y,t_(k)),t_(P)) of the estimated previous filtered image function is given as the following bilinear interpolation ##EQU8## of the values of the previous filtered image function at the image points defined by the relations (5-7), (5-8), (5-9), (5-10). The value g_(tu).sup.σ (f,x,y,t_(k),u_(f).sup.σ (x,y,t_(k)),v_(f).sup.σ (x,y,t_(k))) of the spatial partial with respect to the component u_(f).sup.σ (x,y,t_(k)) of the velocity vector derivative of the optical flow function at the image point (x,y) is given by the relation ##EQU9## where the value g_(x).sup.σ (x+(t_(Q) -t_(k))u_(f).sup.σ (x,y,t_(k)),y+(t_(Q) -t_(k))v_(f).sup.σ (x,y,t_(k)),t_(Q)) of the spatial partial with respect to the component x derivative of the estimated next filtered image function is given as the following bilinear interpolation ##EQU10## of the values of the spatial partial with respect to the component x derivative of the next filtered image function at the image points defined by the relations (5-2), (5-3), (5-4), (5-5); while the value g_(x).sup.σ (x+(t_(P) -t_(k))u_(f).sup.σ (x,y,t_(k)),y+(t_(P) -t_(k))v_(f).sup.σ (x,y,t_(k)),t_(P)) of the spatial partial with respect to the component x derivative of the estimated previous filtered image function is given as the following bilinear interpolation ##EQU11## of the values of the spatial partial with respect to the component x derivative of the previous filtered image function at the image points defined by the relations (5-7), (5-8), (5-9), (5-10). The value g_(tv).sup.σ (f,x,y,t_(k),u_(f).sup.σ (x,y,t_(k)),v_(f).sup.σ (x,y,t_(k))) of the spatial partial with respect to the component v_(f).sup.σ (x,y,t_(k)) of the velocity vector derivative of the optical flow function at the image point (x,y) is given by the relation ##EQU12## where the value g_(y).sup.σ (x+(t_(Q) -t_(k))u_(f).sup.σ (x,y,t_(k)),y+(t_(Q) -t_(k))v_(f).sup.σ (x,y,t_(k)),t_(Q)) of the spatial partial with respect to the component y derivative of the estimated next filtered image function is given as the following bilinear interpolation ##EQU13## of the values of the spatial partial with respect to the component y derivative of the next filtered image function at the image points defined by the relations (5-2), (5-3), (5-4), (5-5); while the value g_(y).sup.σ (x+(t_(P) -t_(k))u_(f).sup.σ (x,y,t_(k)),y+(t_(P) -t_(k))v_(f).sup.σ (x,y,t_(k)),t_(P)) of the spatial partial with respect to the component y derivative of the estimated previous filtered image function is given as the following bilinear interpolation ##EQU14## of the values of the spatial partial with respect to the components y derivative of the previous filtered image function at the image points defined by the relations (5-7), (5-8), (5-9), (5-10).

Each non-boundary grid point (x,y) of the grid Ω_(t).sbsb.k.sup.σ, k=1, . . . , K is surrounded by its eight nearest neighbors specifying eight different directions on the image plane. For each boundary grid point (x,y) of the grid Ω_(t).sbsb.k.sup.σ, k= 1, . . . , K the nearest neighbors are present only for some of these eight different directions. The symbol s is used to denote a vector on the image plane specifying one of these eight different directions on the image plane. The symbol S is used to denote the set of these eight vectors. Let Ω_(t).sbsb.k.sub.,s.sup.σ, k=1, . . . , K, sεS be a subgrid of the grid Ω_(t).sbsb.k.sup.σ with the property that every grid point (x,y) of the subgrid Ω_(t).sbsb.k.sub.,s.sup.σ has the nearest in the direction s neighbor on the grid Ω_(t).sbsb.k.sup.σ. For each k=1, . . . , K, and for each vector s from the set S specifying a particular direction on the image plane, for the directional smoothness function (s,∇u_(f).sup.σ (x,y,t_(k))), (x,y)εΩ_(t).sbsb.k.sup.σ for the horizontal component u_(f).sup.σ (x,y,t_(k)) of the current estimate of the velocity vector field as the finite difference approximation to the directional derivative of the horizontal components u_(f).sup.σ (x,y,t_(k)) of the current estimate of the velocity vector field as follows. For every point (x,y) of the subgrid Ω_(t).sbsb.k.sub.,s.sup.σ of the grid Ω_(t).sbsb.k.sup.σ, the value of the directional smoothness function (s,∇u_(f).sup.σ (x,y,t_(k))) at the point (x,y) is defined to be equal to the difference between the value u_(f).sup.σ (x_(k),s,y_(k),s,t_(k)) of the horizontal component of the current estimate of the velocity vector at the nearest in the direction s neighbor (x_(k),s,y_(k),s) of this grid point (x,y) and the value u_(f).sup.σ (x,y,t_(k))) of the horizontal component of the current estimate of the velocity vector at this grid point (x,y). For every point (x,y) of the grid Ω_(t).sbsb.k.sup.σ not belonging to the subgrid Ω_(t).sbsb.k.sub.,s.sup.σ the value of the directional smoothness function (s,∇u_(f).sup.σ (x,y,t_(k))) at the point (x,y) is defined to be equal to zero. For each k=1, . . . , K, and for each vector s from the set S specifying a particular direction on the image plane, form the directional smoothness function (s,∇v_(f).sup.σ (x,y,t_(k))), (x,y)εΩ_(t).sbsb.k.sup.σ for the vertical component ν_(f).sup.σ (x,y,t_(k)) of the current estimate of the velocity vector field as the finite difference approximations to the directional derivatives of the vertical component v_(f).sup.σ (x,y,t_(k)) of the current estimate of the velocity vector field as follows. For every point (x,y) of the subgrid Ω_(t).sbsb.k.sub.,s.sup.σ of the grid Ω_(t).sbsb.k.sup.σ, the value of the directional smoothness function (s,∇v_(f).sup.σ (x,y,t_(k))) at the point (x,y) is defined to be equal to the difference between the value v_(f).sup.σ (x_(k),s,y_(k),s,t_(k)) of the vertical component of the current estimate of the velocity vector at the nearest in the direction s neighbor (x_(k),s,,y_(k),s) of this grid point (x,y) and the value ν_(f).sup.σ (x,y,t_(k))) of the vertical component of the current estimate of the velocity vector at this grid point (x,y). For every point (x,y) of the grid Ω_(t).sbsb.k.sup.σ not belonging to the subgrid Ω_(t).sbsb.k.sub.,s.sup.σ the value of the directional smoothness function (s,∇v_(f).sup.σ (x,y,t_(k))) at the point (x,y) is defined to be equal to zero.

VI. Systems of Nonlinear and Linear Equations

For every k=1, . . . , K, the system of nonlinear equations relative to the unknown current estimate (u_(f).sup.σ (t_(k)),v_(f).sup.σ (t_(k))) of the velocity vector field is formed by combining the optical flow function g_(t).sup.σ and its spatial derivatives g_(tu).sup.σ, g_(tv).sup.σ for each filter and each image band specified by the index gεG together with the directional smoothness functions (s,∇u_(f).sup.σ), (s,∇v_(f).sup.σ) for each image direction sεS and together with some constant parameters as follows ##EQU15## for every (x,y)εΩ_(t).sbsb.k.sup.σ. Here: the expression q² (∇u_(f).sup.σ,∇v_(f).sup.σ), (x,y)εΩ_(t).sbsb.k.sup.σ represents a square of the norm of the gradient (∇u_(f).sup.σ,∇v_(f).sup.σ) of the velocity vector (u_(f).sup.σ,v_(f).sup.σ) and is defined by the relation ##EQU16## where ρ_(s) is the length of the vector s, sεS and p₀, p₁ are positive constant parameters; the expression b² (s,∇'g_(t).sup.σ), (x,y)εΩ_(t).sbsb.k.sup.σ, sεS is defined by the relation ##EQU17## where

    ∇'g.sub.t.sup.σ (f,x,y,t.sub.k,u.sub.f.sup.σ (x,y,t.sub.k),v.sub.f.sup.σ (x,y,t.sub.k)).tbd.(g.sub.tu.sup.σ (f,x,y,t.sub.k,u.sub.f.sup.σ (x,y,t.sub.k),v.sub.f.sup.σ (x,y,t.sub.k)),g.sub.tv.sup.σ (f,x,y,t.sub.k,u.sub.f.sup.σ (x,y,t.sub.k),v.sub.f.sup.σ (x,y,t.sub.k)));        (6-4)

the expression (u_(f),0.sup.σ,v_(f),0.sup.σ).tbd.(u_(f),0.sup.σ (x,y,t_(k)),v_(f),0.sup.σ (x,y,t_(k))), (x,y)εΩ_(t).sbsb.k.sup.σ represents the initial estimate of the velocity vector at the image point (x,y); and r_(g), a_(s), c, b_(g), γ.sup.σ are positive constant parameters. The system of linear equations relative to the improvement (Δu_(f).sup.σ (t_(k)),Δv_(f).sup.σ (t_(k))) of the current estimate (u_(f).sup.σ (t_(k)),v_(f).sup.σ (t_(k))) of the velocity vector field is defined as the symmetric, positive definite, and diagonally dominant linearization of the system of nonlinear equations (6-1) about the current estimate (u_(f).sup.σ (t_(k)),v_(f).sup.σ (t_(k))) of the velocity vector field as follows ##EQU18## for every (x,y)εΩ_(t).sbsb.k.sup.σ. The solution of the system of linear equations (6-5) is obtained using a fast preconditioned iterative method which is based on the polynominal acceleration of the basic iterative method and can be described as follows.

VII. Linear System Solver

For every k=1, . . . , K, and every f=1, . . . , F, the system of linear equations (6-5) can be expressed in the matrix notation as

    M.sup.σ (u.sub.f.sup.σ (t.sub.k),v.sub.f.sup.σ (t.sub.k))(Δu.sub.f.sup.σ (t.sub.k),Δv.sub.f.sup.σ (t.sub.k)).sup.T =h.sup.σ (u.sub.f.sup.σ (t.sub.k),v.sub.f.sup.σ (t.sub.k)),                 (7-1)

where (Δu_(f).sup.σ (t_(k)),Δv_(f).sup.σ (t_(k)))^(T) is the transpose vector of the row-vector (Δu_(f).sup.σ (t_(k)),Δv_(f).sup.σ (t_(k))). The square matrix M.sup.σ (u_(f).sup.σ (t_(k)),v_(f).sup.σ (t_(k))) can be partitioned into four square submatrices corresponding to the vectors (Δu_(f).sup.σ (t_(k))) and (Δv_(f).sup.σ (t_(k))), respectively, so that the following relation is satisfied ##EQU19## Let the matrix D_(i),j.sup.σ (u_(f).sup.σ (t_(k)),v_(f).sup.σ (t_(k))) be the diagonal part of the matrix M_(i),j.sup.σ (u_(f).sup.σ (t_(k)),v_(f).sup.σ (t_(k))), for every i,j=1,2, and let the matrix D.sup.σ (u_(f).sup.σ (t_(k)),v_(f).sup.σ (t_(k))), be defined as in the relations ##EQU20## Then the preconditioned conjugate gradient iterative method for approximating the solution of the system of linear equations (7-1) can be described as follows.

For the sake of simplicity of the presentation the following notation shall be used:

    w.tbd.(Δu.sub.f.sup.σ (t.sub.k),Δv.sub.f.sup.σ (t.sub.k)).sup.T, M.tbd.M.sup.σ (u.sub.f.sup.σ (t.sub.k),v.sub.f.sup.σ (t.sub.k)),

    h.tbd.h.sup.σ (u.sub.f.sup.σ (t.sub.k),v.sub.f.sup.σ (t.sub.k)), D.tbd.D.sup.σ (u.sub.f.sup.σ (t.sub.k),v.sub.f.sup.σ (t.sub.k)).                 (7-4)

Start with the initial approximation w₀ which is identically equal to zero, and with the initial residual r₀ which is identically equal to h, then for every n=0, 1, . . . , N-1 the following iterative procedure is applied:

    w.sub.n+1 =w.sub.n +α.sub.n p.sub.n, r.sub.n+1 =r.sub.n -α.sub.n q.sub.n.                                   (7-5)

The coefficient α_(n) is defined as in the relation ##EQU21## The vectors q_(n), p_(n) are given by the relation

    q.sub.n =Mp.sub.n,n≧0, p.sub.n =z.sub.n +β.sub.n p.sub.n-1, n≧1, p.sub.0 =z.sub.0.                             (7-7)

The coefficient β_(n) and the vector z_(n) are defined as in the relation ##EQU22##

VIII. Combining Labeled Estimates of Velocity Vector Fields

For every time moment t_(k), k=1, . . . , K, let the sequence of the subgrids Ω_(t).sbsb.k.sub.,f, f=1, . . . , F of the grid Ω_(t).sbsb.k be the disjoint partitioning of the grid Ω_(t).sbsb.k defined below in terms of the following: the disjoint partitioning Ω_(t).sbsb.p.sub.,f, f=1, . . . , F of the grid Ω_(t).sbsb.P, the disjoint partitioning Ω_(t).sbsb.Q.sub.,f, f=1, . . . , F of the gird Ω_(t).sbsb.Q, and the labeled estimate (u_(f) (t_(k)),v_(f) (t_(k))), f=1, . . . , F of the velocity vector field. For every f=2, . . . , F, the subgrid Ω_(t).sbsb.k.sub.,f of the grid Ω_(t).sbsb.k consists of the image points (x,y) with the properties: i) for every point (x,y)εΩ_(t).sbsb.k.sub.,f, the point (x+(t_(P) -t_(k))u_(f) (x,y,t_(k)),y+(t_(P) -t_(k))v_(f) (x,y,t_(k))) is not surrounded by the points of the subgrids Ω_(t).sbsb.P.sub.,1, . . . , Ω_(t).sbsb.P.sub.,f-1 ; ii) for every point (x,y)εΩ_(t).sbsb.k.sub.,f, the point (x+(t_(Q) -t_(k))u_(f) (x,y,t_(k)),y+(t_(Q) -t_(k))v_(f) (x,y,t_(k))) is not surrounded by the points of the subgrids Ω_(t).sbsb.Q.sub.,1, . . . , Ω_(t).sbsb.Q.sub.,f-1 ; iii) in the case of the value of the label f being less than the value of the label F, every point (x,y) of the grid Ω_(t).sbsb.k belonging to the subgrid Ω_(t).sbsb.k.sub.,f does not belong to any of the subgrids Ω_(t).sbsb.k.sub.,f+1, . . . , Ω_(t).sbsb.k.sub.,F. The subgrid Ω_(t).sbsb.k.sub.,1 of the grid Ω_(t).sbsb.k consists of the image points (x,y) that do not belong to any of the subgrids Ω_(t).sbsb.k.sub.,2, . . . , Ω_(t).sbsb.k.sub.,F. Then for every label f=1, . . . , F and for every point (x,y)εΩ_(t),f the value of the estimate (u(x,y,t_(k)),v(x,y,t_(k))) of the velocity vector field is defined to be equal to the value of the labeled estimate (u_(f) (x,y,t_(k)),v_(f) (x,y,t_(k))) of the velocity vector field.

IX. Description of the Image Estimation Algorithm

For each time moment t_(k), k=1, . . . , K, given the next digital image, which is defined on the grid of image points Ω_(t).sbsb.Q, taken at the time moment t_(Q) and consisting of the bands I_(t).sbsb.Q.sub.,1, . . . , I_(t).sbsb.Q.sub.,B, and given the previous digital image, which is defined on the grid of image points Ω_(t).sbsb.P, taken at the time moment t_(P) and consisting of the bands I_(t).sbsb.P.sub.,1, . . . , I_(t).sbsb.P.sub.,B, the method of estimating the missing digital image, which is defined on the grid of image points Ω_(t).sbsb.k, taken at the time moment t_(k) and consisting of the bands I_(t).sbsb.k.sub.,1, . . . , I_(t).sbsb.k.sub.,B based on the estimate (u(t_(k)),v(t_(k))) of the velocity vector field, which is defined on the grid of image points Ω_(t).sbsb.k, can be described as follows. For each image band b=1, . . . , B, the value of the estimate I_(t).sbsb.k.sub.,b of the missing digital image band is equal to the sum of the scaled by the factor (t_(k) -t_(P))/(t_(Q) -t_(P)) value of the estimated next digital image band and the scaled by the factor (t_(Q) -t_(k))/(t_(Q) -t_(P)) value of the estimated previous digital image band at the points (x,y) of the grid Ω_(t).sbsb.k where both the estimated next digital image band and the estimated previous digital image band are defined. For each image band b=1, . . . , B, the value of the estimate I_(t).sbsb.k.sub.,b of the missing digital image band is equal to the value of the estimated next digital image band at the points (x,y) of the grid Ω_(t).sbsb.k where only the estimated next digital image band is defined. For each image band b=1, . . . , B, the value of the estimate I_(t).sbsb.k.sub.,b of the missing digital image band is equal to the value of the estimated previous digital image band at the points (x,y) of the grid Ω_(t).sbsb.k where only the estimated previous digital image band is defined. To obtain the estimated next digital image band, for every f=1, . . . , F find the grid of image points Ω_(t).sbsb.Q.sub.,f (u(t_(k)),v(t_(k))) which are the taken at the time moment t_(Q) estimated perspective projections onto the image plane of the visible points in the scene, whose perspective projections onto the image plane at the time moment t_(k) are the grid points Ω_(t).sbsb.k.sub.,f ; and then bilinearly interpolate the belonging to the subgrid Ω_(t).sbsb.k.sub.,f portion of the next digital image band I_(t).sbsb.Q.sub.,b from the grid of points Ω_(t).sbsb.Q where the next digital image is defined to those points of the grid Ω_(t).sbsb.Q.sub.,f (u(t_(k)),v(t_(k))) that are surrounded by the points of the grid Ω_(t).sbsb.Q.sub.,f. To obtain the estimated previous digital image band, for every f=1, . . . , F find the grid of image points Ω_(t).sbsb.P.sub.,f (u(t_(k)),v(t_(k))) which are the taken at the time moment t_(P) estimated perspective projections onto the image plane of the visible points in the scene, whose perspective projections onto the image plane at the time moment t_(k) are the grid points Ω_(t).sbsb.k.sub.,f ; and then bilinearly interpolate the belonging to the subgrid Ω_(t).sbsb.k.sub.,f portion of the previous digital image band I_(t).sbsb.P.sub.,b from the grid of points Ω_(t).sbsb.P where the previous digital image is defined to those points of the grid Ω_(t).sbsb.P.sub.,f (u(t_(k)),v(t_(k))) that are surrounded by the points of the grid Ω_(t).sbsb.P.sub.,f. To obtain the grid of image points Ω_(t).sbsb.Q.sub.,f (u(t_(k)),v(t_(k))), f=1, . . . , F, each image point of the grid Ω_(t).sbsb.k.sub.,f is shifted by the amount equal to the scaled by the factor (t_(Q) -t_(k)) value of the estimated velocity vector defined at that grid point. To obtain the grid of image points Ω_(t).sbsb.P.sub.,f (u(t_(k)),v(t_(k))), f=1, . . . , F, each image point of the grid Ω_(t).sbsb.k.sub.,f is shifted by the amount equal to the scaled by the factor (t_(k) -t_(P)) value of the estimated velocity vector defined at that grid point.

For a given label value f=1, . . . , F, let (x,y) be an image point from the grid Ω_(t).sbsb.k.sub.,f, then for a given band value b=1, . . . , B the value of the missing digital image band I_(t).sbsb.k.sub.,b (x,y,u(x,y,t_(k)),v(x,y,t_(k))) at the image point (x,y) can be more precisely defined as follows.

The point (x+(t_(Q) -t_(k))u(x,y,t_(k)),y+(t_(Q) -t_(k))v(x,y,t_(k))) of the grid Ω_(t).sbsb.Q.sub.,f (u(t_(k)),v(t_(k))) can be expressed in the following form

    (x+(t.sub.Q -t.sub.k)u(x,y,t.sub.k),y+(t.sub.Q -t.sub.k)v(x,y,t.sub.k))=(i.sub.t.sbsb.Q.sub.,1 +θ.sub.t.sbsb.Q.sub.,1)h.sub.t.sbsb.Q.sub.,1 +(i.sub.t.sbsb.Q.sub.,2 +θ.sub.t.sbsb.Q.sub.,2)h.sub.t.sbsb.Q.sub.,2.       (9-1)

for some integer numbers i_(t).sbsb.Q.sub.,1, i_(t).sbsb.Q.sub.,2 and for some real numbers θ_(t).sbsb.Q.sub.,1, θ_(t).sbsb.Q.sub.,2 from the interval [0,1]. If the estimated next digital image is defined at the point (x,y,), then the point (x+(t_(Q) -t_(k))u(x,y,t_(k)),y+(t_(Q) -t_(k))v(x,y,t_(k))) of the grid Ω_(t).sbsb.Q.sub.,f (u(t_(k)),v(t_(k))) is surrounded by the following points of the grid Ω_(t).sbsb.Q.sub.,f :

    (x.sub.t.sbsb.Q.sub.,1,y.sub.t.sbsb.Q.sub.,1)=i.sub.t.sbsb.Q.sub.,1 h.sub.t.sbsb.Q.sub.,1 +i.sub.t.sbsb.Q.sub.,2 h.sub.t.sbsb.Q.sub.,2, (9-2)

    (x.sub.t.sbsb.Q.sub.,2,y.sub.t.sbsb.Q.sub.,2)=(i.sub.t.sbsb.Q.sub.,1 +1)h.sub.t.sbsb.Q.sub.,1 +i.sub.t.sbsb.Q.sub.,2 h.sub.t.sbsb.Q.sub.,2, (9-3)

    (x.sub.t.sbsb.Q.sub.,3,y.sub.t.sbsb.Q.sub.,3)=i.sub.t.sbsb.Q.sub.,1 h.sub.t.sbsb.Q.sub.,1 +(i.sub.t.sbsb.Q.sub.,2 +1)h.sub.t.sbsb.Q.sub.,2, (9-4)

    (x.sub.t.sbsb.Q.sub.,4,y.sub.t.sbsb.Q.sub.,4)=(i.sub.t.sbsb.Q.sub.,1 +1)h.sub.t.sbsb.Q.sub.,1 +(i.sub.t.sbsb.Q.sub.,2 +1)h.sub.t.sbsb.Q.sub.,2, (9-5)

and the value I_(t).sbsb.Q.sub.,b (x+(t_(Q) -t_(k))u(x,y,t_(k)),y+(t_(Q) -t_(k))v(x,y,t_(k))) of the estimated nest digital image band is given as the following bilinear interpolation ##EQU23## of the values of the next digital image band at the image points defined by the relations (9-2), (9-3), (9-4), (9-5).

The point (x+(t_(P) -t_(k))u(x,y,t_(k)),y+(t_(P) -t_(k))v(x,y,t_(k))) of the grid Ω_(t).sbsb.P.sub.,f (u(t_(k)),v(t_(k))) can be expressed in the following form

    (x+(t.sub.P -t.sub.k)u(x,y,t.sub.k),y+(t.sub.P -t.sub.k)v(x,y,t.sub.k))=(i.sub.t.sbsb.P.sub.,1 +θ.sub.t.sbsb.P.sub.,1)h.sub.t.sbsb.P.sub.,1 +(i.sub.t.sbsb.P.sub.,2 +θ.sub.t.sbsb.P.sub.,2)h.sub.t.sbsb.P.sub.,2.       (9-7)

for some integer numbers i_(t).sbsb.P.sub.,1, i_(t).sbsb.P.sub.,2 and for some real numbers θ_(t).sbsb.P.sub.,1, θ_(t).sbsb.P.sub.,2 from the interval [0,1]. If the estimated previous digital image is defined at the point (x,y), then the point (x+(t_(P) -t_(k))u(x,y,t_(k)),y+(t_(P) -t_(k))v(x,y,t_(k))) of the gird Ω_(t).sbsb.P.sub.,f (u(t_(k)),v(t_(k))) is surrounded by the following points of the grid Ω_(t).sbsb.P.sub.,f :

    (x.sub.t.sbsb.P.sub.,1,y.sub.t.sbsb.P.sub.,1)=i.sub.t.sbsb.P.sub.,1 h.sub.t.sbsb.P.sub.,1 +i.sub.t.sbsb.P.sub.,2 h.sub.t.sbsb.P.sub.,2,(9-8)

    (x.sub.t.sbsb.P.sub.,2,y.sub.t.sbsb.P.sub.,2)=(i.sub.t.sbsb.P.sub.,1 +1)h.sub.t.sbsb.P.sub.,1 +i.sub.t.sbsb.P.sub.,2 h.sub.t.sbsb.P.sub.,2, (9-9)

    (x.sub.t.sbsb.P.sub.,3,y.sub.t.sbsb.P.sub.,3)=i.sub.t.sbsb.P.sub.,1 h.sub.t.sbsb.P.sub.,1 +(i.sub.t.sbsb.P.sub.,2 +1)h.sub.t.sbsb.P.sub.,2,(9-10)

    (x.sub.t.sbsb.P.sub.,4,y.sub.t.sbsb.P.sub.,4)=(i.sub.t.sbsb.P.sub.,1 +1)h.sub.t.sbsb.P.sub.,1 +(i.sub.t.sbsb.P.sub.,2 +1)h.sub.t.sbsb.P.sub.,2,(9-11)

and the value I_(t).sbsb.P.sub.,b (x+(t_(P) -t_(k))u(x,y,t_(k)),y+(t_(P) -t_(k))v(x,y,t_(k))) of the estimated previous digital image band is given as the following bilinear interpolation ##EQU24## of the value of the previous digital image band at the image points defined by the relations (9-8), (9-9), (9-10), (9-11).

If the estimated next digital image and the estimated previous digital image are both defined at the image point (x,y), then the value I_(t).sbsb.k.sub.,b (x,y,u(x,y,t_(k)),v(x,y,t_(k))) of the missing digital image band at the image point (x,y) is given by the relation ##EQU25## where the value I_(t).sbsb.Q.sub.,b (x+(t_(Q) -t_(k))u(x,y,t_(k)),y+(t_(Q) -t_(k))v(x,y,t_(k))) of the estimated next digital image band is given as the bilinear interpolation by the relation (9-6), while the value I_(t).sbsb.P.sub.,b (x+(t_(P) -t_(k))u(x,y,t_(k)),y+(t_(P) -t_(k))v(x,y,t_(k))) of the estimated previous digital image band is given as the bilinear interpolation by the relation (9-12). If only the estimated next digital image is defined at the image point (x,y), then the value I_(t).sbsb.k.sub.,b (x,y,u(x,y,t_(k)),v(x,y,t_(k))) of the missing digital image band at the image point (x,y) is given by the relation

    I.sub.t.sbsb.k.sub.,b (x,y,u(x,y,t.sub.k),v(x,y,t.sub.k))=I.sub.t.sbsb.Q.sub.,b (x+(t.sub.Q -t.sub.k)u(x,y,t.sub.k),y+(t.sub.Q -t.sub.k)v(x,y,t.sub.k)).(9-14)

where the value I_(t).sbsb.Q.sub.,b (x+(t_(Q) -t_(k))u(x,y,t_(k)),y+(t_(Q) -t_(k))v(x,y,t_(k))) of the estimated next digital image band is given as the bilinear interpolation by the relation (9-6). If only the estimated previous digital image is defined at the image point (x,y), then the value I_(k),b (x,y,u(x,y,t_(k)),v(x,y,t_(k))) of the missing digital image band at the image point (x,y) is given by the relation

    I.sub.t.sbsb.k.sub.,b (x,y,u(x,y,t.sub.k),v(x,y,t.sub.k))=I.sub.t.sbsb.P.sub.,b (x+(t.sub.P -t.sub.k)u(x,y,t.sub.k),y+(t.sub.P -t.sub.k)v(x,y,t.sub.k)), (9-15)

where the value I_(t).sbsb.P.sub.,b (x+(t_(P) -t_(k))u(x,y,t_(k)),y+(t_(P) -t_(k))v(x,y,t_(k))) of the estimated previous digital image band is given as the bilinear interpolation by the relation (9-12).

X. Summary of the Correspondance Algorithm

The method of computing the estimate of the velocity vector field (u(t_(k)),v(t_(k))) corresponding to the missing image at the time moment t_(k), for each k=1, . . . K, can be described as the following multi-level resolution process:

1. For each band b=1, . . . , B, read the image band I_(t).sbsb.P.sub.,b into the array representing the grid Ω_(t).sbsb.P. For each resolution level σ=σ₁, . . . , σ_(M), form the partitioning the grid Ω_(t).sbsb.P.sup.σ into disjoint regions Ω_(t).sbsb.P.sub.,f.sup.σ, f=1, . . . , F, and then for each index gεG representing the band b form the following: the previous filtered image function g.sup.σ (x,y,t_(P)) according to the relation (4-1), the x-spatial partial derivative g_(x).sup.σ (x,y,t_(P)) of the previous filtered image function according to the relation (4-2), and the y-spatial partial derivative g_(y).sup.σ (x,y,t_(P)) of the previous filtered image function according to the relation (4-3).

2. For each band b=1, . . . , B, read the image band I_(t).sbsb.Q.sub.,b into the array representing the grid Ω_(t).sbsb.Q. For each resolution level σ=σ₁, . . . , σ_(M), form the partitioning the grid Ω_(t).sbsb.Q.sup.σ into disjoint regions Ω_(t).sbsb.Q.sub.,f.sup.σ, f=1, . . . , F, and then for each index gεG representing the band b form the following: the next filtered image function g.sup.σ (x,y,t_(Q)) according to the relation (4-1), the x-spatial partial derivative g_(x).sup.σ (x,y,t_(Q)) of the next filtered image function according to the relation (4-2), and the y-spatial derivative g_(y).sup.σ (x,y,t_(Q)) of the next filtered image function according to the relation (4-3).

3. Start with the label value F taken as the current label value f.

4. Start with the coarsest resolution level σ_(M) taken as the current resolution level σ.

5. In the case of the current resolution level σ being the coarsest resolution level σ_(M), set the initial estimate (u_(f),0.sup.σ (t_(k)),v_(f),0.sup.σ (t_(k))) of the velocity vector field to some given (for example, constant) value, for every k=1, . . . , K; otherwise project the final estimate (u_(f),1.sup.δ(σ) (t_(k)),v_(f),1.sup.δ(σ) (t_(k))) of the velocity vector field at the previous coarser resolution level δ(σ)=σ_(m+1) to the current resolution level σ=σ_(m) to obtain the initial estimate (u_(f),0.sup.σ (t_(k)),v_(f),0.sup.σ (t_(k))) of the velocity vector field at the current resolution level σ, for every k=1, . . . , K. Take the initial estimate (u_(f),0.sup.σ (t_(k)),v_(f),0.sup.σ (t_(k))) of the velocity vector field at the current resolution level σ as the current estimate (u_(f).sup.σ (t_(k)),v_(f).sup.σ (t_(k))) of the velocity vector field at the current resolution level σ, for every k=1, . . . , K.

6. Form the values of the expression ∥(∇u_(f).sup.σ (x,y,t_(k)),∇v_(f).sup.σ (x,y,t_(k)))∥², for every (x,y)εΩ_(t).sbsb.k.sup.σ, and for every k=1, . . . , K according to the relation (6-2).

7. For every k=1, . . . , K, the values of the following functions are formed: the optical flow function g_(t).sup.σ (f,x,y,t_(k),u_(f).sup.σ (x,y,t_(k)),v_(f).sup.σ (x,y,t_(k))) according to the relation (5-11), for every (x,y)εΩ_(t).sbsb.k.sup.σ, and for every gεG; the spatial partial with respect to the component u_(f).sup.σ (x,y,t_(k)) derivative g_(tu).sup.σ (f,x,y,t_(k),u_(f).sup.σ (x,y,t_(k)),v_(f).sup.σ (x,y,t_(k))) of the optical flow function according to the relation (5-14), for every (x,y,)εΩ_(t).sbsb.k.sup.σ, and for every gεG; the spatial partial with respect to the component v_(f).sup.σ (x,y,t_(k)) derivative g_(tv).sup.σ (f,x,y,t_(k),u_(f).sup.σ (x,y,t_(k)),v_(f).sup.σ (x,y,t_(k))) of the optical flow function according to the relation (5-17), for every (x,y)εΩ_(t).sbsb.k.sup.σ, and for every gεG; the expression b² (s,∇'g_(t).sup.σ (f,x,y,t_(k),u_(f).sup.σ (x,y,t_(k)),v_(f).sup.σ (x,y,t_(k))))² according to the relation (6-3), for every (x,y)εΩ_(t).sbsb.k.sup.σ, and for every sεS.

8. Form the system of linear equations (6-5), for every k=1, . . . , K.

9. Obtain the improvement (Δu_(f).sup.σ (t_(k)),Δv_(f).sup.σ (t_(k))) of the current estimate of the velocity vector field (u_(f).sup.σ (t_(k)),v_(f).sup.σ (t_(k))), for every k=1, . . . , K, by iteratively solving the system of linear equations (6-5) as described in Section VII.

10. Take the improved estimate (u_(f).sup.σ (t_(k)),v_(f).sup.σ (t_(k)))+(Δu_(f).sup.σ (t_(k)),Δv_(f).sup.σ (t_(k))) of the velocity vector field as the new current estimate (u_(f).sup.σ (t_(k)),v_(f).sup.σ (t_(k))) of the velocity vector field, for every k=1, . . . , K.

11. Repeat step 6 to step 10 until the current estimate (u_(f).sup.σ (t_(k)),v_(f).sup.σ (t_(k))) of the velocity vector field is improved to the desired degree, for every k=1, . . . , K. Take the resulted improved current estimate (u_(f).sup.σ (t_(k)),v_(f).sup.σ (t_(k))) of the velocity vector field as the final estimate (u_(f),1.sup.σ (t_(k)),v_(f),1.sup.σ (t_(k))) of the velocity vector field at the current resolution level σ, for every k=1, . . . , K.

12. Take the next finer resolution level σ_(m-1) as the current resolution level σ.

13. Repeat step 5 to step 12 until the finest resolution level σ=σ₁ is reached.

14. Take the next smaller label value f-1 as the current label value f.

15. Repeat step 4 to step 14 until the smallest label value f=1 is reached.

16. Bilinearly interpolate the final estimate (u_(f),1.sup.σ (t_(k)),v_(f),1.sup.σ (t_(k))) of the finest resolution level σ=σ₁ to the grid of points Ω_(t).sbsb.k on the image plane to obtain the estimate (u_(f) (t_(k)),v_(f) (t_(k))) of the velocity vector field corresponding to the label value f and to the missing image at the time moment t_(k), for every f=1, . . . , F, and every k=1, . . . , K.

17. Combine the estimate (u_(f) (t_(k)),v_(f) (t_(k))), f=1, . . . , F of the velocity vector field to obtain the estimate (u(t_(k)),v(t_(k))) of the velocity vector field, for every k=1, . . . , K. 

What is claimed is:
 1. A method of motion compensated frame interpolation wherein an intermediate image frame is generated between two image frames in a motion image sequence, comprising the steps of:a) identifying a foreground and a background for two successive frames in a motion image sequence; b) estimating a velocity vector field for the foreground, and a velocity vector field for the background; c) using the estimated velocity vector field for the foreground to locate corresponding points in the two frames and, if the points in both frames are in the foreground, to identify the location as foreground and, otherwise, as background in the intermediate image; and d) obtaining the intermediate image by using the foreground velocity vector field to perform motion compensated interpolation for the foreground in the intermediate image and using the background velocity vector field to perform motion compensated interpolation for the background in the intermediate image.
 2. The method claimed in claim 1, further comprising the steps of:e) identifying a second foreground for the two successive frames; f) treating the first foreground as the background for the second foreground; and g) applying steps b) through d) to the second foreground and the first background.
 3. The method claimed in claim 1, wherein step a) of identifying a foreground and a background is performed by a user employing a graphical user interface.
 4. The method claimed in claim 1, wherein step b) of estimating a velocity vector field for the foreground, and a velocity vector field for the background includes the steps of:i) computing a velocity vector field for a coarsest resolution level; ii) project the velocity vector field from the previously computed resolution level onto a next finer resolution level; iii) computing a velocity vector field at the finer resolution level; iv) repeating steps b) and c) until a final finest resolution level is reached; and v) interpolating the velocity vector field at the finest resolution level to the pixel resolution level.
 5. The method claimed in claim 1, wherein step d) of obtaining the intermediate image by using the foreground velocity vector field to perform motion compensated interpolation for the foreground in the intermediate image and using the background velocity vector field to perform motion compensated interpolation for the background in the intermediate image, further comprises the steps of:i) for each pixel in the intermediate image, if it is a foreground pixel, using the foreground velocity vector at that pixel to find the corresponding points in the two frames, and computing the time weighted average of the two points; and ii) if it is a background pixel, finding the corresponding points in the two frames using the background velocity vector and if they are both background points, computing the time weighted average of the two points; if only one of the two corresponding points is a background point, using the value of the background point; and if they are both foreground point determining the value of the pixel from the values of neighboring background pixels in the intermediate image. 